Azureストレージのオブジェクトレプリケーションを試してみた
いわさです。
Azureストレージにはオブジェクトレプリケーションの機能があります。
ありますが、今まで使ったことがありませんでした。
他のリージョンへレプリケーションすることで物理的に近いリージョンからのアクセスを可能にしたり、データを分散させたり、様々な使い方出来ます。
今回、パブリックプレビューでAzure Premium Storage(Blob)もレプリケーションに対応したようです。
良い機会なので普通のストレージも含めてすこしレプリケーションまわりを触ってみました。
前提の設定
レプリケーション元とレプリケーション先で前提条件として以下の設定が必要になります。
- ソースアカウントで変更フィードを有効にする
- 両アカウントでBLOBバージョン管理を有効にする
レプリケーション設定すると自動で有効になるので、今日は手動で事前に設定しましたが、本来はあまり気にしなくてもいいかもしれないです。
まずは、リージョン別にストレージアカウント(Standard)を作成しました。
レプリケーション元は変更フィードとBLOBバージョン管理を有効化しました。
レプリケーション先はBLOBバージョン管理のみ有効化しました。
レプリケーション設定
ストレージアカウントのメニューからオブジェクトレプリケーション
を選択し、レプリケーション規則を新規追加します。
レプリケーション先(ターゲット)アカウントを選択し、コンテナーのペア(複数設定可能)を設定します。
今回は設定しませんでしたがポリシーを組み合わせることで、レプリケーション先を分岐させたりフィルタリングさせることも可能です。
またレプリケーション時の上書きコピーも設定可能です。今回は新しいオブジェクトのみ
にしました。
なお、変更フィードについてはターゲットアカウンは自動有効化はされません。
レプリケーションの確認
単純ですがファイルをアップロードするだけです。
ファイル詳細にオブジェクトレプリケーション
が表示され、レプリケーションのステータスを確認することが出来ます。
以下はレプリケーション先のコンテナーです。
レプリケーションには少し(このファイルのサイズ1つで10~20秒くらい)ラグがありました。
プレミアムストレージ
プレミアムストレージは通常高いストレージ性能が必要な場合に採用されます。
お値段も結構します。
以前まではプレミアムストレージはレプリケーションが使えなかったようなのですが、最近のパブリックプレビューで使えるようになったようです。
既存の Standard パフォーマンス ストレージ アカウントを Premium パフォーマンスのブロック BLOB ストレージ アカウントに変換することはできません。 Premium パフォーマンス ストレージ アカウントに移行するには、Premium ブロック BLOB アカウントを作成し、データを新しいアカウントに移行する必要があります。
既存のスタンダードストレージからプレミアムストレージへの変換は出来ないようなので、ストレージアカウントを新規作成しました。
先程と同じようにレプリケーション規則を作成します。
先程と同じレプリケーション元アカウントに、規則を追加しました。
追加後はこのようになります。
複数のレプリケーション規則やアカウントを管理することが可能です。
ではレプリケーション元に新規ファイルをアップロードします。
こちらは先程のレプリケーション先アカウントです。
先程作成したレプリケーション規則が残っているので、追加でアップロードしたファイルがレプリケーションされていますね。
こちらは新規作成したプレミアムアカウントです。
追加でアップロードしたファイルがレプリケーションされています。
ただし、規則を追加前にすでにアップロード(レプリケーション)済みのファイルに関しては改めてレプリケーションされるわけではないのでお気をつけください。
まとめ
Azureポータルから簡単にレプリケーションの設定を行うことが出来ました。
もちろんCLIからの設定も可能です。
また、プレビューではありますがプレミアムストレージとスタンダードストレージの間でのレプリケーションが出来ることも確認することが出来ました。
Azureストレージ自体が冗長構成オプションが豊富なので、冗長化のためだけにこのレプリケーション機能を使うことはほぼないと思いますが、冒頭で述べたような分散化によるパフォーマンス向上で使えるシーンは多そうなので、覚えておきたいですね。